#include "CStrategie.h"
using namespace std; 
CStrategie::CStrategie()
{
	// set basis pos 
	m_basisPosX[0] = 0;
	m_basisPosY[0] = 0;
	bool playing = false;	

	while(playing)
	{
		// Zolang we nog niet met slots werken
		// veronderstellen dat er continu een nieuwe
		// balpositie is.
		nieuweBalPositie();
	}

}

CStrategie::~CStrategie()
{

}

void CStrategie::setRobot(Robot &r)
{
	m_robot[0].setRobot(r);
}

void CStrategie::setOntvanger(Ontvanger &ontvanger)
{
	m_ontvanger = ontvanger;
}

void CStrategie::setBalVector(BalVector &balVector)
{
	m_balvector = balVector;
}

void CStrategie::update()
{
	for ( int i=0; i<AANTALROBOTS ; i++)
	{
		m_robot[i].stuur();
	}
}

void CStrategie::nieuweBalPositie()
{
	// Simpele strategie:
	// bal in range => onderscheppen
	// indien niet => terugekeren naar basispositie

	// Voor toekomstige uitbreidingen:
	// indien er meerdere robots zijn,
	// moet maar 1 robot de bal onderscheppen!
	bool robotSent = false;
	int x,y;
	Robot a;

	for ( int i=0; i<AANTALROBOTS ; i++)
	{
		
		a = m_robot[i].getRobot();
		//m_ontvanger.wifi(m_balvector,m_robot[i].getRobot());
		printf("-nieuweBalPositie-----\n");
		m_ontvanger.wifi(m_balvector,a);
		//printf("CStrategie - na wifi\n");
		
		if ((!robotSent) && (m_balvector.isInRange(x,y)) )
		{	// bal is in Range -> onderscheppen
			
			m_robot[i].gaNaar(x,y);
			printf("CStrategie1 - bal is in range %d %d\n",x,y);
			robotSent = true;
		}
		else
		{
			printf("CStrategie2 - bal is niet in range\n");
			// ga naar basis positie (basis met 1 robot: voor doel)
			m_robot[i].gaNaar(m_basisPosX[i],m_basisPosY[i]);
		}
	}
	printf("-nieuweBalPositie-na----\n");
}
